package com.codeplatform.service;

import com.codeplatform.dto.CodeExecutionRequest;
import com.codeplatform.dto.CodeExecutionResult;

/**
 * 代码执行服务接口
 * 提供多语言代码执行功能
 */
public interface CodeExecutionService {
    
    /**
     * 执行代码
     * @param request 代码执行请求
     * @return 执行结果
     */
    CodeExecutionResult executeCode(CodeExecutionRequest request);
    
    /**
     * 检查语言是否支持
     * @param language 编程语言
     * @return 是否支持
     */
    boolean isLanguageSupported(String language);
    
    /**
     * 获取支持的语言列表
     * @return 支持的语言列表
     */
    String[] getSupportedLanguages();
    
    /**
     * 获取语言的默认模板代码
     * @param language 编程语言
     * @return 模板代码
     */
    String getTemplateCode(String language);
    
    /**
     * 验证代码语法
     * @param language 编程语言
     * @param code 代码内容
     * @return 语法检查结果
     */
    CodeExecutionResult validateSyntax(String language, String code);
}